package com.itcam.iahinterface.utils;

import cn.hutool.crypto.digest.DigestAlgorithm;
import cn.hutool.crypto.digest.Digester;

import java.util.Map;

/**
 * @author : Cammy.Wu
 * Description : 
 */

public class SignUtils {
    /**
     * 生成签名的工具方法。
     *
     * 该方法接收一个包含请求参数的 Map 和一个密钥，通过将 Map 内容和密钥拼接后进行 MD5 哈希计算，
     * 最终返回一个十六进制的签名串。
     *
     * @param body 包含请求参数的键值对映射，用于生成签名。
     * @param secretKey 用于生成签名的密钥，通常是一个保密的字符串。
     * @return 返回一个十六进制的签名串，用于验证请求的合法性。
     */
    public static String genSign(String body, String secretKey) {
        // 创建一个使用 MD5 算法的 Digester 对象，用于后续的哈希计算
        Digester md5 = new Digester(DigestAlgorithm.MD5);
        // 将 Map 转换为字符串，并与密钥拼接，使用点号作为分隔符
        String content = body + "." + secretKey;
        // 对拼接后的内容进行 MD5 哈希计算，并将结果转换为十六进制字符串返回
        return md5.digestHex(content);
    }

}
